package com.htl.线程.sleep_wait;

import java.util.concurrent.TimeUnit;

/**
 *  不会排队，因为 func3 的调用不需要锁定资源，无需等待 func3 的执行完毕即可执行。
 *  如果方法添加了 synchronized ，不是说不能调，只是调用的是需要锁定当前对象，如果没有添加
 *  synchronized，不需要考虑任何锁定的问题，直接调。
 */

public class Synchronized01_1 {
    public static void main(String[] args) {
        Date1_1 date = new Date1_1();
        new Thread(()->{
            date.func1();
        },"A").start();
        try {
            TimeUnit.SECONDS.sleep(1);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        new Thread(()->{
            date.func3();
        },"B").start();
    }
}

class Date1_1{
    public synchronized void func1(){
        try {
            TimeUnit.SECONDS.sleep(3);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("1...");
    }

    public void func3(){
        System.out.println("3...");
    }
}
